gRPC 接口

您所在的位置:网站首页 grpc 调试工具 gRPC 接口

gRPC 接口

2024-07-16 05:34:57| 来源: 网络整理| 查看: 265

gRPC 接口

gRPC 是一种高效、快速、可靠的远程过程调用(RPC, Remote Procedure Call)框架,在多种不同的场景都有着广泛的应用。在微服务架构中,gRPC 可以实现跨服务的高效通信。对于需要大量数据传输的场景,gRPC 可以使用流式传输功能,以减少网络传输延迟和带宽占用。

注意gRPC 接口调试功能正处于 Beta 公开测试阶段。Apifox 版本号需大于等于 2.3.0 才能够使用 gRPC 接口调试功能。新建 gRPC 项目​

点击 Apifox 首页的“新建项目”按钮,选择 “gRPC 项目(Beta)”。

导入 Proto​

gRPC 是一种 API-First 的 API 技术,这意味着在开发之前,必须先通过 .proto 文件来定义服务、方法和消息。因此,使用 Apifox 调试 gRPC 接口之前,也需要先导入作为 API 定义的 .proto 文件。

首次导入​

目前支持以下两种方式导入 .proto 文件:

本地文件托管 .proto 文件的 URL

目标 .proto 文件会被导入为 1 个 Proto,其中 service 会被导入为服务,rpc 会被导入为方法。

如果选择的 .proto 文件依赖于其他 .proto 文件,那么需要手动添加依赖关系目录。

选择的 .proto 文件所依赖的其他 .proto 文件内的 service,如果其归属的 package 与选择的 .proto 文件的 package 相同,也会被导入到相同的 Proto 中。

重新导入​

如果导入的 .proto 文件发生了变化,那么可以在 Apifox 内重新导入 .proto 文件:右键点击 Proto,然后点击重新导入按钮。

调用方法​

使用 .proto 文件定义 gRPC 的方法时,支持 4 种类型:

Unary:一元调用Server Streaming:服务端流Client Streaming:客户端流Bidirectional Streaming:双向流

Apifox 支持全部 4 种方法的调用。

一元调用​

一元调用类似于 HTTP 请求。在地址栏输入 URL,在 Message 标签下以 JSON 格式输入消息内容,点击“调用”按钮,即可发起一元调用。

此外,你也可以手动填写 Metadata 和 Auth 信息,以满足鉴权或其他复杂场景。

流式调用​

流式调用类似于 WebSocket 连接。在发起调用之后,你可以在 Message 标签下撰写消息并发送。服务端流、客户端流与双向流皆属于流式调用类型。

Apifox 提供了一个时间线视图,按照时间顺序集中展示调用状态、发送的消息、收到的消息。点击消息之后,可以非常方便地查看消息的详情。

进阶使用​自动生成动态值​

Apifox 能够识别 .proto 文件中的内容,因此你可以点击“自动生成”按钮生成消息体。如果你需要使用更加灵活的动态数据,那么可以点击“动态值”功能配置并生成表达式。

详细说明请参考《动态变量/随机参数》。

使用变量​

你可以在 gRPC 的消息和 Metadata 中使用 Apifox 变量。

详细说明请参考《环境变量/全局变量/临时变量》。

启用 TLS​

gRPC 接口支持通过 TLS 建立安全的连接。

使用 Apifox,你可以点击 URL 前面的协议选择器来快速切换 TLS 的状态。

此外,Apifox 也兼容在 URL 中使用 grpcs:// 来为连接启用 TLS。与之相对应,grpc:// 表示不启用 TLS。

管理服务器地址与环境​

你可以点击 URL 地址栏右侧的加号图标,将当前正在使用的服务器地址添加到一个环境。

然后,在右上角选择环境和服务器地址,再在 URL 地址栏中选择“跟随默认”,就可以给所有方法使用统一的服务器地址来进行调试。

查看 Proto 文件和接口参数​查看 Proto 文件内容​

在 Apifox 中点击左侧目录树中的 Proto 即可查看 .proto 文件的原始内容。

查看请求和响应的参数​

gRPC 使用 ProtoBuf 作为序列化格式,这意味着在发送、接收消息时,每条消息都以 ProtoBuf 格式进行传输。与其他基于文本的序列化格式(JSON、XML)不同,ProtoBuf 是一种二进制格式,不适合人类进行书写、阅读。因此,在 Apifox 中调用 gRPC 接口时,所有消息都使用 JSON 格式来撰写、展示。

你可以在接口信息页面查看以 JSON 形式表示的请求参数和响应参数。

ProtoBuf 和 JSON 的数据类型存在着映射关系,如下表所示:

ProtoBuf 3JSONJSON 示例messageobject{"fooBar": v, "g": null, …}enumstring"FOO_BAR"mapobject{"k": v, …}repeated Varray[v, …]boolbooleantrue, falsestringstring"Hello World!"bytesbase64 string"YWJjMTIzIT8kKiYoKSctPUB+"int32, fixed32, uint32number1, -10, 0int64, fixed64, uint64string"1", "-10"float, doublenumber1.1, -10.0, 0, "NaN", "Infinity"gRPC 与 Triple​

Triple 是一种兼容 gRPC 的 API 技术,它们都使用 gRPC 通信协议和 ProtoBuf 序列化格式。

如果你的 Triple 接口通过 .proto 文件进行定义,而不是 Java Interface 或其他方式定义,那么同样可以在 Apifox 的 gRPC 项目中加载 .proto 文件来调试 Triple 接口。

此时,URL 中的协议名 tri:// 和 grpc:// 是等价的。

保存调试信息​

完成调试后可以点击“保存”按钮将服务器 URL、消息、Metadata 等调试信息保存在当前方法中,以便团队内的其他成员进行调试。



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭